#pragma once

/*
 class stores the names of the columns in the form of a constant
*/
class ColumnNames 
{
public:
    static const std::string PROGRAM;

    static const std::string MAIN_BLOCK;
    static const std::string MAIN;

    static const std::string CLASS_DELCS;
    static const std::string CLASS_DECL;
    static const std::string CLASS;
    static const std::string CONSTRUCTOR;

    static const std::string THIS;

    static const std::string FORMAL_LIST;
    static const std::string FORMAL_REST;

    static const std::string METHOD_DECLS;
    static const std::string METHOD_DECL;

    static const std::string FUNCTION;
    static const std::string RETURN;

    static const std::string VAR_DECLS;
    static const std::string VAR_DECL;
    static const std::string TYPE;
    static const std::string STANDART_TYPE;
    static const std::string ARRAY;
    static const std::string INT;

    static const std::string ID;
    static const std::string INT_LITERAL;

    static const std::string NEW;
    static const std::string ASSIGNEMENT_RIGHT_PART;
    static const std::string NEW_ELEMENT;
    static const std::string CALL_METHOD;

    static const std::string STMTS;
    static const std::string STMT;
    static const std::string IF;
    static const std::string ELSE;
    static const std::string WHILE;
    static const std::string PRINT;

    static const std::string ARG;
	static const std::string LOGIC_EXP_ARG;

    static const std::string LOGIC_EXP;
    static const std::string LOGIC_EXP_A;
    static const std::string LOGIC_EXP_B;
    static const std::string LOGIC_EXP_C;

    static const std::string LOGIC_OP;

    static const std::string NOT;
    static const std::string ASSIGN;
    static const std::string EQUAL;
    static const std::string LESSOREQUAL;
    static const std::string LESS;
    static const std::string OR;
    static const std::string AND;

    static const std::string EXP;
    static const std::string EXP_A;
    static const std::string EXP_C;
    static const std::string EXP_D;

    static const std::string EXP_LIST;
    static const std::string EXP_REST;

    static const std::string OP_A;
    static const std::string OP_B;
    static const std::string SUB;
    static const std::string ADD;
    static const std::string MUL;
    static const std::string DIV;

    static const std::string L_FIGURE_BRACKET;
    static const std::string R_FIGURE_BRACKET;
    static const std::string L_ROUND_BRACKET;
    static const std::string R_ROUND_BRACKET;

    static const std::string COLON;
    static const std::string POINT;
    static const std::string COMMA;
    static const std::string SEMICOLON;

    static const std::string DELIMETER;
    static const std::string END_OF_FILE;
};